// 引入 uni-ajax 模块
import ajax from '@/uni_modules/u-ajax'
import { getToken } from '@/utils/auth.js'

export default async function axios(option) {
	let promise = new Promise((resolve, reject) => {
		// 创建请求实例
		const instance = ajax.create({
			// 初始配置
			baseURL: 'http://47.100.196.16:8093/spine-front/app',
			changeOrigin: true
		})

		// 添加请求拦截器
		instance.interceptors.request.use(
			config => {
				// 是否需要设置 token
				const isToken = (config.header || {}).isToken === false
				// 是否需要防止数据重复提交
				const isRepeatSubmit = (config.header || {}).repeatSubmit === false
				
				// console.log(config)
				//头部加token
				if (getToken() && !isToken) {
				    config.header['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
				}
                
				
				return config
			},
			error => {
				return error
			}
		)

		// 添加响应拦截器
		instance.interceptors.response.use(
			response => {
				// console.log('--------------------------------', response)
				// 对响应数据做些什么
				if (response.statusCode == 200 && response.data.code == 401) {
					uni.showToast({
						icon: 'none',
						title: '请重新登录'
					})
					uni.redirectTo({
						url: '/pages/login/login'
					})
				} 
				else if (response.statusCode == 200 && response.data.code == 200) {
					let data = response.data
					if (data.hasOwnProperty('token')) {
						let token = data.token
						uni.setStorageSync('token', token)
					}
				} 
				else {
					uni.showToast({
						icon: 'none',
						title: response.data.msg
					})
				}
				return response.data
			},
			error => {
				console.log('error-------------')
				console.log(error)
				// 对响应错误做些什么
				return error
			}
		)

		instance(option)
			.then((res) => {
				resolve(res);
			})
			.catch((err) => {
				reject(err);
			});

	});

	return promise
}